import java.util.HashMap;
import java.util.Map;

public class Solution560 {
    public int subarraySum(int[] nums, int k) {
        int[] sum=new int[nums.length+1];
        for (int i=1;i<=nums.length;i++){
            sum[i]=sum[i-1]+nums[i-1];
        }
        Map<Integer,Integer> map=new HashMap<>();
        map.put(0,1);
        int ans=0;
        for (int i=1;i<=nums.length;i++){
            ans=ans+map.getOrDefault(sum[i]-k,0);
            map.put(sum[i],map.getOrDefault(sum[i],0)+1);
        }
        return ans;
    }

    public static void main(String[] args) {
        System.out.println(new Solution560().subarraySum(new int[]{1,1,1},2));
    }
}
